package com.coda.mapper;

import com.coda.pojo.Statistics;
import com.coda.pojo.Word;
import com.coda.pojo.vo.UserRankVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.util.List;

/**
 * 统计mapper
 */
@Mapper
public interface StatisticsMapper {
    /**
     * 根据用户id和日期查询单词个数
     * @param currentId
     * @param date
     * @return
     */
    int getWeekWordCount(@Param("currentId") Integer currentId,@Param("date") LocalDate date);

    /**
     * 获取默写总数和每日目标
     * @param currentId
     * @return
     */
    Statistics getWordStatistics(Integer currentId);

    /**
     * 获取最长连续天数
     * @param currentId
     * @return
     */
    int getLongestDays(Integer currentId);


    /**
     * 默写总数
     * @param currentId
     * @return
     */
    int getDictationTotal(Integer currentId);

    /**
     * 默写正确的总数
     * @param currentId
     * @return
     */
    int getCorrectTotal(Integer currentId);

    /**
     * 获取前单词默写数量前六名的用户
     * @return
     */
    List<UserRankVo> getUserRank();

    /**
     * 获取当前用户错误次数最多的20个单词
     * @return
     */
    List<Word> getIncorrectCount();
}
